/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import beans.Profesion;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;

/**
 *
 * @author Guido Cresta
 */
public class ProfesionDao {

    private static List<Profesion> profesiones = null;

    public static List<Profesion> getProfesiones() {
        if (profesiones == null) {
            Session session = SimpleSessionFactory.getSessionFactory(null).openSession();
            Query q = session.createQuery("from beans.Profesion");

            profesiones = q.list();
            session.close();

        }
        return profesiones;
    }

    public static Profesion getProfesionPorNombre(String nombre){
        if(profesiones == null)
            getProfesiones();

        for(Profesion profesion : profesiones){
            if(profesion.getNombre().compareTo(nombre) == 0)
                return profesion;
        }

        return null;
    }

    public static boolean saveOrUpdateOrDelete(List<Profesion> profesiones, List<Profesion> profesionesABorrar) {
        Session session = null;
        try{
            session = SimpleSessionFactory.getSessionFactory(null).openSession();

            session.beginTransaction();

            for(Profesion profesion : profesiones)
                session.saveOrUpdate(profesion);

            for(Profesion profesion : profesionesABorrar)
                session.delete(profesion);

            session.getTransaction().commit();

            return true;
        }catch(Exception ex){
            if(session != null & session.isOpen())
                session.getTransaction().rollback();

            ex.printStackTrace();
            
            return false;
        }finally{
            if(session != null & session.isOpen())
                session.close();
        }
    }
}
